package queue

/**
实现队列
*/
/**
这就是一个 slice
那为什么不用var定义呢？ 比如 var queue []int
我的理解是，如果用var定义，其实你定义的是一个变量。而用type定义，你其实是定义的一个类型，进一步的你可以用这个定义的类型去定义别的变量。类似于面向对象里面说的类和类的实例的区别。
*/
type Queue []int

func (q *Queue) Push(v int) {
	*q = append(*q, v)
}

func (q *Queue) Pop() int {
	head := (*q)[0]
	*q = (*q)[1:]
	return head
}

func (q *Queue) IsEmpty() bool {
	return len(*q) == 0
}
